home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 48
/
048side1.d81
/
historic mazes
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
10KB
|
305 lines
1 gosub60100
2 ma$="historic mazes"
4 gosub 442:goto 296
6 poke 214,22:print
8 print wi$ spc(3)"use cursors to move"ss$ s$ s$"q to quit"
10 print ho$ br$ w$ w% tab(26) t$
12 gosub 102:poke v+31,0:poke v+30,0
14 printho$br$tab(10)w%wi$tab(31)ss$ss$ho$tab(31)fntm(x)":"fnts(x)
16 get k$:if k$="" then 16
18 if k$="q" then 294
20 if peek(197)<>2 and peek(197)<>7 then 16
22 if k$=u$ then u%=u%-4
24 if k$=d$ then u%=u%+4
26 if k$=l$ then l%=l%-4:if l%=<0 then poke v+16,peek(v+16)and254:l%=255
28 if k$=r$ then l%=l%+4:if l%=>256 then poke v+16,peek(v+16)or1:l%=4
30 poke v,l%:poke v+1,u%
32 on k goto 34,38,42,46,50
34 if l%>145 and l%<156 and u%>158 and u%<168 then 272
36 goto 54
38 if l%>142 and l%<148 and u%>166 and u%<172 then 272
40 goto 54
42 if l%>126 and l%<132 and u%>150 and u%<156 then 272
44 goto 54
46 if l%>154 and l%<164 and u%>142 and u%<152 then 272
48 goto 54
50 if l%>138 and l%<158 and u%>86 and u%<96 then 272
52 goto 68
54 if peek(v+31)and1=1 then gosub 108:gosub 58
56 poke v+31,0:poke v+30,0:goto 14
58 if k$=u$ then u%=u%+4
60 if k$=d$ then u%=u%-4
62 if k$=l$ then l%=l%+4:if l%=>256 then poke v+16,peek(v+16)or1:l%=4
64 ifk$=r$ then l%=l%-4:if l%=<0 then pokev+16,peek(v+16)and254:l%=255
66 poke v,l%:poke v+1,u%:w%=w%+1:return
68 if mk=1 then 54
70 if rr=1 then poke 214,10:print:poke 211,28:print ss$ ss$:rr=0
72 z%=1+w%+rnd(1)*15:if z%<15 then 80
74 l=63+8*int(rnd(1)*16)
76 r=8*int(rnd(1)*13):u=107+r:if w%>19 then u=195:if w%>30 then l=87
78 poke v+2,l:poke v+3,u
80 if peek(v+30)<>255 then 54
82 zz%=w%+rnd(0)*10:poke 198,0:if zz%<10 then 96
84 print cl$"the minotaur got you":ki=1:gosub 108:gosub 108
86 poke v+21,0:poke v+21,2
88 poke 214,22:print:print wi$ rt$"for menu and/or results"s$
90 get x$:if x$="" then 90
92 if asc(x$)<>13 then gosub 102:goto 90
94 goto 294
96 gosub 102:mk=1:ki=0:poke v+21,0:poke v+21,1
98 print ho$ wi$"you killed the minotaur - continue!"ss$
100 goto 280
102 for t=0 to 24:poke m+t,0:next:poke m+24,15
104 poke m+1,110:poke m+5,9:poke m+6,9:poke m+4,17:poke m+4,16
106 for t=1 to 500:next:poke m+24,0:return
108 poke v+32,9:poke m+0,240:poke m+1,33:poke m+5,8:poke m+22,104
110 poke m+23,1:poke m+24,79:poke m+4,129:for t=1 to 70:next
112 poke m+4,128:poke m+24,0:poke v+32,13:if k=5 then poke v+32,0
114 return
116 poke z+j+li*40,aa:return
118 for j=h1 to h2:poke z+j+li*40,aa:next j:return
120 for li=l1 to l2:poke z+j+li*40,aa:next li:return
122 read c:if c=0 then return
124 read a$:a=val(a$)
126 if a$="h" then a=111
128 if a$="v" then a=101
130 if a$="l" then a=76
132 if a$="s" then a=32
134 poke z+c+li*40,a:goto 122
136 for i=3 to i1:poke zz+z1+i,160:poke zz+880+i,160:next
138 for i=z2 to 840 step40:poke zz+3+i,160:poke zz+i1+i,160:next:return
140 for i=3 to i1: poke zz+z1+i,160:poke v+2048+z1+i,11
142 poke zz+880+i,160:poke v+2928+i,11:next
144 for i=z2 to 840 step 40:poke zz+3+i,160:poke v+2051+i,11
146 poke zz+i1+i,160:poke v+2048+i1+i,11:next:return
148 i1=32:i2=29:z1=240:z2=240:gosub 136
150 for li=6 to 17:for j=1 to 7
152 poke z+j+li*40,101:poke z+j+16+li*40,101:next:next
154 aa=111:h1=1:h2=22:for li=5 to 9:gosub 118
156 h1=h1+1:h2=h2-1:next
158 h1=6:h2=18:for li= 13 to 17:gosub 118
160 h1=h1-1:h2=h2+1:next
162 aa=32:h1=9:h2=11:for li=14 to 15:gosub 118:next
164 for li=6 to 17:gosub 122:next
166 poke v+2185+11*40,1:return
168 i1=34:i2=30:z1=120:z2=160:gosub 136
170 aa=111:h1=1:h2=23:for li=1 to 4:gosub 118:next li
172 h1=2:h2=23:for li=14 to 17:gosub 118:next li
174 aa=101:l1=2:l2=17:j=1:gosub 120:j=24:gosub 120
176 l1=5:l2=13:for j=2 to 23:gosub 120:next j
178 aa=111:li=9:h1=3:h2=16:gosub 118
180 li=5:for j=10 to 13:gosub 116:next j
182 for b=1 to 146:read b$:next
184 for li=2 to 17:gosub 122:next
186 poke v+2184+12*40,1:return
188 i1=26:i2=26:z1=120:z2=160:gosub 136
190 aa=101:h1=1:h2=17:for li=2 to 17:gosub 118:next
192 aa=111:h1=1:h2=16:for li=1 to 8:gosub 118
194 h1=h1+1:h2=h2-1:next
196 h1=8:h2=9:for li=10 to 17:gosub 118
198 h1=h1-1:h2=h2+1:next
200 j=1:for li=17 to 11 step-1
202 poke z+j+li*40,76:j=j+1:next
204 j=9:for li=9 to 2 step-1
206 poke z+j+li*40,32:j=j+1:next
208 for b=1 to 480:read b$:next
210 for li=4 to 17:gosub 122:next
212 poke v+2182+10*40,1:return
214 i1=34:i2=30:z1=120:z2=160:gosub 136
216 aa=101:h1=1:h2=24:for li=2 to 17:gosub 118:next li
218 aa=111:li=1:for j=1 to 23:gosub 116:next
220 li=2:for j=4 to 22:gosub 116:next
222 li=3:for j=8 to 21:gosub 116:next
224 li=4:for j=10 to 20:gosub 116:next
226 li=12:for j=7 to 18:gosub 116:next
228 li=13:for j=7 to 18:gosub 116:next
230 li=14:for j=6 to 19:gosub 116:next
232 li=15:for j=5 to 20:gosub 116:next
234 li=16:for j=6 to 22:gosub 116:next
236 li=17:for j=4 to 23:gosub 116:next
238 li=5:for j=14 to 18:gosub 116:next
240 aa=32:h1=11:h2=14:for li=8 to 10:gosub 118:next li
242 for b=1 to 574:read b$:next
244 for li=2 to 17:gosub 122:next
246 poke v+2186+9*40,1:return
248 aa=101:h1=0:h2=17:for li=3 to 17:gosub 118:next
250 aa=111:h1=0:h2=16:for li=2 to 8:gosub 118
252 h1=h1+1:h2=h2-1:next
254 h1=7:h2=9:for li=10 to 17:gosub 118
256 h1=h1-1:h2=h2+1:next
258 aa=101:j=9:for li=3 to 10:gosub 116:next
260 aa=32:li=2:for j=9 to 17:gosub 116:next
262 print ho$ u$ "wait 5" tab(30) ss$ ss$
264 j=0:for li=17 to 10 step-1
266 poke z+j+li*40,76:j=j+1:next
268 for b=1 to 766:read b$:next:if b$<>"0" then print"data error":stop
270 for li=3 to 10:gosub 122:next:return
272 gosub 102:poke v+32,10:s(k)=1
274 print ho$"success"ss$:poke 198,0:if k=5 then 88
276 l%=l%+4:u%=u%-4:if k=1 or k=4 then l%=l%+8:u%=u%+12
278 poke v,l%:poke v+1,u%:poke v+31,0
280 gosub 102:poke 214,22:print
282 print spc(3) rt$"and find your way out"
284 get x$:if x$="" then 284
286 if x$<>chr$(13) then gosub 102:goto 284
288 print ho$;:for x=1 to 38:print s$;:next:print
290 if k<>5 then poke v+32,13
292 goto 6
294 w(k)=w%:mm(k)=fntm(x):ms(k)=fnts(x):w%=0
296 restore:poke v+32,.:poke v+33,.
298 print cl$ bl$ spc(12) ma$
300 print d$ spc(6)"menu" d$
302 poke v+21,0:if peek(v+16)<>0 then poke v+16,peek(v+16)and254
304 print" [158]1[154]"s$ m$(1)", england"
306 print" [158]2[154]"s$ m$(2)
308 print" [158]3[154]"s$ m$(3)", france"
310 print" [158]4[154]"s$ m$(4)", england"
312 print" [158]5[154]"s$ m$(5)", crete"
314 print" [158]6 results"
316 print" [158]7 [154]end"
318 print spc(10)"select a number":gosub 102
320 get kk$:if kk$="" then 320
322 k=val(kk$):if k=0 or k>7 then gosub 102:goto 320
324 if k=5 then 372
326 if k=6 then 352
328 if k=7 then 60000
330 poke v+33,5:poke v+32,13:print co$
332 on k gosub 336,340,344,348:gosub 414
334 s(k)=0:ti$="000000":goto 6
336 print spc(13) m$(1)
338 l%=167:u%=219:gosub 148:return
340 print spc(11) m$(2)
342 l%=55:u%=147:gosub 168:return
344 print spc(10) m$(3)
346 l%=203:u%=147:gosub 188:return
348 print spc(13) m$(4)
350 l%=255:u%=155:gosub 214:return
352 poke v+32,13:print cl$ spc(15) wi$"results"d$
354 print tab(21) t$ tab(29) ba$ w$:print wi$ tab(20)"min sec"d$
356 for j=1 to 5:print bl$ m$(j);
358 if s(j)=1 then print wi$ chr$(115) bl$;
360 if ms(j)<>0 then print tab(20) wi$ mm(j) ms(j) tab(33) ba$ w(j);
362 print:next:if ki=0 then 366
364 print ba$ u$"minotaur got you"d$ d$
366 print tab(5) bl$ d$ rt$"for menu":gosub 102
368 get kk$:if kk$="" then 368
370 goto 296
372 print cl$:ki=0:mk=0:print spc(10) m$(5)
374 print d$"you have two choices:"d$
376 print wi$"e"bl$ s$"easy-bird's eye view"d$
378 print ba$"r"bl$ s$"realistic-maze is dark"d$
380 print spc(5)"select"s$ wi$"e [154]or r":gosub 102
382 get y$:if y$="" then 382
384 if y$<>"e" and y$<>"r" then 382
386 poke v+32,0:poke v+33,0
388 if y$="e" then print gr$
390 if y$="r" then print ba$
392 print cl$ wi$:if y$="r" then print tab(32) u$"wait 10"
394 i1=26:i2=26:z1=120:z2=160
396 if y$="e" then gosub 136
398 if y$="r" then gosub 140
400 print spc(3)"knossos-crete [fragment]"
402 gosub 248:l=191:u=139:l%=119:u%=155
404 gosub 414:gosub 428:poke v+40,2:poke v+21,255
406 poke 214,4:print:poke 211,16
408 print wi$ chr$(115) s$"ariadne"
410 poke 214,10:print:poke 211,28
412 print br$"_ minotaur":rr=1:goto334
414 poke 2040,13:poke s,0:poke s+1,15:poke s+2,0
416 poke s+3,0:poke s+4,15:poke s+5,0
418 poke s+6,0:poke s+7,15:poke s+8,0
420 poke s+9,0